The process of fabricating integrated circuits typically involves a functional design step, followed by a physical design step. During the functional design step, a design concept is described using a hardware description language and is then converted into a netlist, which specifies the electronic components and the connections between the components. The physical design step specifies the placement of the electrical components or elements on the chip and routing of the connections between the electrical components thereby implementing the netlist. The physical design process generates the physical design data, which are synonymously called layout data, layout, or target layout.
The target layout defines a set of binary patterns or objects, which are also called “features” or “geometric features”. Usually the objects are represented as a polygon or collection of polygons in the layout data in order to facilitate the specification of the objects.
Each object can be a part of an electronic component such as a gate of a transistor or a connection between components. Each polygon object has vertices and edges joining the vertices. Each vertex is usually defined by its coordinates in a Cartesian x-y coordinate system. In a typical very-large scale integrated (VLSI) circuit, most edges are parallel to the x or y axis.
Often the physical design data are stored and transmitted in a machine-readable format such as GDSII format, OASIS™ format, or in a database such as OpenAccess database technology or Milkyway™ design database. See, for example, OpenAccess: The Standard API for Rapid EDA Tool Integration, 2003 by Si2, Inc; Milkyway Foundation Database for Nanometer Design, Synopsys, Inc. 2003.
In these formats or databases, the layouts are often described hierarchically. This has the advantage of reducing file sizes and improving efficiency for certain changes, since some patterns are placed multiple times in the layout. Repeatedly describing the same structure in detail can thus be avoided.
In the layout hierarchy, a cell is a subset of the layout pattern that can be referenced as a whole object. Thus, cells can be included in the layout by reference. Inclusions by reference can further be nested.
Often, the hierarchy of the layout resembles a tree. The leaves of a tree are attached to its branches. Branches are attached to larger branches. The hierarchy of branches continues until the trunk of the tree reaches its roots. Leaf cells of a circuit are cells that do not include any cells by reference. A leaf cell comprises a set of objects, which are usually polygons. A child cell is included in its parent cell. A root cell it is not included in any other. A layout can have multiple root cells resembling a forest with multiple trees. And cells can be referenced a number of times within a single parent cell or by multiple parent cells.
Multiple instances of a cell can be described by a structure reference or an array reference. A structure reference places an instance (a copy) of a cell at a particular (x,y)-offset within a parent cell. Each instance has transformation information, which can often include translation, magnification, reflection, and/or rotation. An array reference describes multiple instances of a cell that are placed on a set of locations that form a grid or array. The array is defined by: 1) a number of rows; 2) a number of columns, 3) row and column spacings, 4) (x,y) offset of an instance; and 5) a set of magnifications, reflections, and rotations that are common to all cells in the array.
If a layout does not have hierarchy, it is called flat. A layout can be flat as per design. Sometimes a hierarchical layout can be flattened. Flattening a layout means removing its hierarchical organization by replacing each cell reference by the set of polygons contained in the cell that is referenced.
Semiconductor device manufacturing comprises many steps of patterning layers according to the layout data. A layer is either the substrate of the semiconductor wafer or a film deposited on the wafer. At some steps, a pattern is etched into a layer. At some other steps, ions are implanted, usually in a pattern, into the layer. Generally, patterning comprises: lithography, and etch or implant.
The prevalent form of lithography is optical projection lithography. This involves first making a mask or reticle that embodies the pattern to be projected onto the wafer. An image of the mask's pattern is then optically projected onto a photoresist film coated on the wafer. This selectively exposes photoresist. The latent image is then developed, thereby making a stencil on the wafer.
Other forms of lithography include: mask-less optical projection lithography where the mask is replaced by a spatial light modulator. The spatial modulator is typically an array of micro-machined mirrors that are illuminated and imaged onto the wafer. The spatial light modulator is driven by the lithography data. Direct electron-beam writing lithography, electron projection lithography, and imprint lithography are other forms of lithography.
Modern semiconductor lithography processes often print features that are smaller than the exposure wavelength. In this regime, which is called the low-k1 regime, the field and wave nature of light is prevalent, and the finite aperture of the projection lens acts as a low-pass filter of spatial frequencies in the image. Thus, it may be difficult for the projection lens to reproduce the high spatial frequency components required to reproduce the sharp edges or corners in polygon objects for example. Also, light entering a mask opening from one object may impact another shape in close proximity, leading to a complex interaction of the electric fields of adjacent objects. Thus, the final shapes that are produced on the wafer will often have rounded corners and may bulge towards adjacent objects in ways that can impact the process yield. This resulting image distortion, called optical proximity effect, is responsible for the most significant distortion that arises in the transfer of the mask pattern onto the wafer.
Another source distortion is resist process effects. Diffusion and loading effects during resist and etch processing impact the fidelity with which a pattern can be rendered or transferred to the wafer.
Optical Proximity Correction (OPC) is the process of changing, or pre-distorting, the target layout data to produce lithography data so that the pattern that is etched in the wafer is a closer replica of the target layout. The goal of OPC is to counter the distortions caused by the physical patterning process (see A. K-T Wong, Resolution enhancement techniques in optical lithography, SPIE Press, Vol. TT47, Bellingham, Wash., 2001; H. J. Levinson, Principles of Lithography, SPIE Press, Bellingham, Wash., 2001). In effect, the objects or polygons of the lithograph data are modifications from those specified by the target layout in an effort to improve the reproduction of the critical geometry. This is often accomplished by moving object edges and by adding additional objects to the layout to counter optical and process distortions. These corrections are required to ensure the intended target design pattern fidelity is met improving the process window and consequently manufacturing yield.
Application of many reticle or resolution enhancement technologies (RET) can also have the effect of changing the layout data relative to the lithography data. RET also addresses distortion in the lithography process by pre-compensation. Typically, RET involves implementing a resolution enhancement technique like insertion of sub-resolution assist features (SRAF), phase shift enhancement using an attenuated phase mask, or designing a mask such that includes quartz etching to introduce phase shifting across features.
One issue is how the OPC, RET, and/or process corrections should be applied to repeating patterns such as instances of a cell in a hierarchical pattern description, such as in a structure reference or an array reference. The distortions usually have an environment and position dependence across the field of the mask. As a result, repeating patterns should receive distinct corrections for changes in the environment and position.
Typically, corrections are performed once on a repeating pattern and these corrections are propagated across all references or placements of the same pattern. To accommodate for field position and pattern environment dependent corrections, each of these placements needs to be further corrected to achieve the targeted feature fidelity on the wafer.